package org.example.classtopia.Service;

import org.example.classtopia.Common.Result.Result;
import org.example.classtopia.Model.dto.AiSendMessageDTO;
import org.example.classtopia.Model.vo.AiSessionCreateVO;
import org.example.classtopia.Model.vo.AiSessionListVO;
import reactor.core.publisher.Flux;

/**
 * AI服务接口 - 真实AI调用
 */
public interface AiService {

    /**
     * 发送消息给AI（流式响应）
     * 
     * @param sendMessageDTO 发送消息DTO
     * @return 流式字符串响应
     */
    Flux<String> sendMessage(AiSendMessageDTO sendMessageDTO);

    /**
     * 获取会话列表
     * 
     * @param page 页码
     * @param size 每页大小
     * @return 会话列表
     */
    Result<AiSessionListVO> getSessionList(Integer page, Integer size);

    /**
     * 创建会话
     * 
     * @param sessionId 会话ID
     * @param title     会话标题
     * @return 创建结果
     */
    Result<AiSessionCreateVO> createSession(String sessionId, String title);
}
